package com.jyw.business.comp.domain.dto;

import com.jyw.business.comp.domain.CompScheduleShift;
import com.jyw.business.comp.domain.CompScheduleShiftTime;
import com.jyw.common.annotation.Excel;
import com.jyw.common.utils.bean.BeanUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.util.CollectionUtils;

import java.math.BigDecimal;
import java.util.List;
import java.util.stream.Collectors;

@Data
@ApiModel("班次新增请求")
public class ShiftAddDto {

    /** 班次名称 */
    @ApiModelProperty("班次名称")
    private String name;

    /** 排班日类型集合 0:工作日，1，周末，2，节假日 */
    @ApiModelProperty("排班日类型集合 0:工作日，1，周末，2，节假日")
    private String holidayType;

    /** 班次颜色 */
    @ApiModelProperty("班次颜色")
    private String color;

    /** 值班费用 */
    @ApiModelProperty("值班费用")
    private BigDecimal price;

    @ApiModelProperty("班次时间")
    private List<ShiftTimeAddDto> shiftTimeList;

    public CompScheduleShift build() {
        CompScheduleShift shift = new CompScheduleShift();
        BeanUtils.copyProperties(this,shift);
        return shift;
    }

    public List<CompScheduleShiftTime> buildShiftTime(Long id) {
        if (!CollectionUtils.isEmpty(getShiftTimeList())) {
            return getShiftTimeList().stream().map(data -> {
                CompScheduleShiftTime time = new CompScheduleShiftTime();
                BeanUtils.copyProperties(data, time);
                time.setShiftId(id);
                return time;
            }).collect(Collectors.toList());
        }
        return null;
    }
}
